package com.atguigu.gulimall.member;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;

/**
 *  1、想要远程调用其它微服务中的服务
 *      1）、引入open-feign jar依赖
 *          <dependency>
 *             <groupId>org.springframework.cloud</groupId>
 *             <artifactId>spring-cloud-starter-openfeign</artifactId>
 *          </dependency>
 *          可以在创建Module时就添加上
 *      2）、编写一个接口，告诉SpringCloud这个接口需要调用远程服务
 *          1、声明接口的没一个方法都是调用的哪一个远程服务的哪个请求
 *          接口上写调用的微服务的application name
 *          @FeignClient("gulimall-coupon") 调用的是gulimall-coupon微服务
 *          哪一个方法，在方法上添加注解
 *          @RequestMapping("/coupon/coupon/member/list") 其中写全路径，包括controller类上的requestMapping也包括方法上的
 *      3）、开启远程调用声明
 *          @EnableFeignClients，写在调用其它服务的类中
 *          basePackages的值是哪一个文件夹是编写的接口
 *          @EnableFeignClients(basePackages = "com.atguigu.gulimall.member.feign")
 *      4）、在想要使用的controler中通过添加自动装配的feign中自己编写的接口来调用这个接口，使用其中的方法，如果携带参数，在接口中添加即可，报红但可以运行，因为这个接口没有实现类
 * */
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients(basePackages = "com.atguigu.gulimall.member.feign")
public class GulimallMemberApplication {

    public static void main(String[] args) {
        SpringApplication.run(GulimallMemberApplication.class, args);
    }

}
